-- stack: in.0 -- format: 8 (HyperCard 1) -- flags: 0x0 (none) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=0, y1=0, x2=0, y2=0) -- screen: Rect(x1=0, y1=0, x2=0, y2=0) -- card dimensions: w=0 h=0 -- scroll: x=0 y=0 -- background count: 3 -- first background id: 2660 -- card count: 15 -- first card id: 3017 -- list block id: 5364 -- print block id: 0 -- font table block id: 0 -- style table block id: 0 -- free block count: 0 -- free size: 0 bytes -- total size: 144384 bytes -- stack block size: 6656 bytes -- created by hypercard version: 0x00000000 -- compacted by hypercard version: 0x00000000 -- modified by hypercard version: 0x00000000 -- opened by hypercard version: 0x00000000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x8000000008000000 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0x8888222288882222 -- patterns[4]: 0x88AA22AA88AA22AA -- patterns[5]: 0xCCAA33AACCAA33AA -- patterns[6]: 0xEEAABBAAEEAABBAA -- patterns[7]: 0xEEBBBBEEEEBBBBEE -- patterns[8]: 0xFFBBFFEEFFBBFFEE -- patterns[9]: 0xFFBBFFFFFFBBFFFF -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x038448300C020101 -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xF0F0F0F00F0F0F0F -- patterns[34]: 0x081C22C180010204 -- patterns[35]: 0xFF808080FF080808 -- patterns[36]: 0xF87422478F172271 -- patterns[37]: 0xBF00BFBFB0B0B0B0 -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0x0 ----- HyperTalk script ----- on startUp getHomeInfo pass startUp hide menubar hide message box set the name of background button id 31 to "Menus On" end startUp on enterkey if the tool is "browse tool" then choose button tool else if the tool is "button tool" then choose field tool else choose browse tool end enterkey on resume getHomeInfo pass resume end resume on getHomeInfo global stacks,applications,documents,userName set lockScreen to true set lockMessages to true push this card go to card "User Preferences" of stack "Home" put card field "User Name" into userName set userLevel to card field "User Level" set powerKeys to the hilite of button "Power Keys" set blindTyping to the hilite of button "Blind Typing" put field "paths" of card "stacks" into stacks put field "paths" of card "applications" into applications put field "paths" of card "documents" into documents pop card set lockScreen to false set lockMessages to false hide menubar hide message box set the name of background button id 31 to "Menus On" end getHomeInfo on searchScript pattern,stackName -- search all scripts of a stack set lockMessages to true if stackName is not empty then go to stack stackName if the script of this stack contains pattern then edit script of this stack repeat with i = 1 to the number of bkgnds go to card 1 of bkgnd i if the script of this bkgnd contains pattern then edit script of bkgnd repeat with j = 1 to the number of bkgnd buttons if the script of bkgnd button j contains pattern then edit script of bkgnd button j end repeat repeat with j = 1 to the number of bkgnd fields if the script of bkgnd field j contains pattern then edit script of bkgnd field j end repeat end repeat repeat with i = 1 to the number of cards go card i if the script of this card contains pattern then edit script of this card repeat with j = 1 to the number of card buttons if the script of card button j contains pattern then edit script of card button j end repeat repeat with j = 1 to the number of card fields if the script of card field j contains pattern then edit script of card field j end repeat end repeat set lockMessages to false end searchScript on mouseup if the optionkey is not down then exit mouseup else if the shiftkey is down then edit script of this background else edit script of target end if end if end mouseup on newcard ask "What do you want to name this card?" set cursor to 4 put "Please wait while we fix things up for you..." put it into newName if newName is empty then domenu delete card exit newcard end if set the name of this card to newName set lockscreen to true put the short name of this background into rememberThis push this card go first card pop card set lockscreen to false hide message window end newcard on controlbutton ref if the commandkey is down then visual dissolve to black visual dissolve go first card of background ref exit controlbutton end if set cursor to 4 put card field ref into theList DoList "Card","Cancel",theList,one get the result if it is not empty then visual scroll left to gray visual scroll right go card item 2 of it end if end controlbutton -- -- LastPathComponent -- given a file pathname, returns the last -- component i.e. whatever comes after the last colon, if anything. -- From Dewi Williams -- function LastPathComponent name -- scan backwards for the last colon. repeat with i = the length of name down to 1 if character i of name is ":" then exit repeat end repeat if i is 1 then -- Name was of the form ":thing" or "thing". Check for leading -- colon, and adjust if necessary. Done for generality. if first character of name is ":" then put 2 into i end if else add 1 to i -- skip the colon end if -- Name was of the form "Thing:otherthing". Return "otherThing". put empty into lastpath repeat with j = i to the length of name put character j of name after lastpath end repeat return lastpath end LastPathComponent -- -- OsErr: for displaying Operating system error codes returned by -- Sublaunch, RenameFile, MoveFile and DeleteFile XFCNs. -- From Dewi Williams -- on OsErr err -- Translate the most common ones if err > 0 then -- XFCN convention put "Parameter error with function" into errstr else if err is -59 then put "Problem during rename" into errstr else if err is -54 then put "Attempt to open locked file for writing" into errstr else if err is -46 then put "Volume locked by software" into errstr else if err is -45 then put "File locked" into errstr else if err is -44 then put "Volume locked by hardware" into errstr else if err is -43 then put "File not found" into errstr else if err is -37 then put "Bad volume or file name" into errstr else if err is -36 then put "I/O error" into errstr else if err is -35 then put "No such volume" into errstr else if err is -34 then put "Disk is full" into errstr else if err is -49 then put "File already open for writing" into errstr else put "Failed with error" && err into errstr end if answer errstr with "OK" end OsErr